<?php
/**
 *
 *  Acoes dentro do sistema
 *  @package Utils
 *  @category Controllers
 *  @author Carlos O Carvalho
 *  @version 1.0.0
 *  @access public
 *  @example <br>
 *  --------------------------------------------------------------------------- <br>
 *  Use Actions::method() <br>
 *  ---------------------------------------------------------------------------
 *  */

class Utils {
	/**
	 * save habilitacao do usuario no leilao, usada para gerar habilitação para cada usuário em leilões.
	 *@param int $idUser codigo do usuario logado no sistema
	 *@param int $idLeilao codiogo do leilao
	 */

	public static function saveHabilitacao($idUser, $idLeilao) {
		$ci = &get_instance();
		if (!self::getHabilitacao($idUser, $idLeilao)) {

			$ci -> db -> trans_start();
			$ci -> db -> insert('habilitacoes', array('KEY_HASH' => self::createKeyHabilitacao($idUser, $idLeilao), 'USER_ID' => $idUser, 'LEILAO_ID' => $idLeilao, 'CREATE' => date('Y-m-d H:i:s')));

			$ci -> db -> trans_complete();

			if ($ci -> db -> trans_status() === FALSE) {
				return true;
			}
			return false;

		}
		return true;

	}

	/**
	 *Recuperando a habilitacao do usuario no leilao.
	 *@param $idUser id do usuario logado
	 *@param $idLeilao codiogo do leilao
	 *@depends ci->model->db->get_where();
	 */
	public static function getHabilitacao($idUser, $idLeilao) {
		$ci = &get_instance();
		$isKeyExists = $ci -> db -> get_where('habilitacoes', array('KEY_HASH' => self::createKeyHabilitacao($idUser, $idLeilao))) -> row();

		if ($isKeyExists) {
		  return $isKeyExists;
		
		}

		return false;
	}

	public static function sendMail($area) {

	}

	/**
	 *Mensagens para o template,essas mensagens serão temporárias no template.
	 *@param string $str mensagem a ser adicionada ao flash
	 *@param string $type qual tipo de mensagem que será emitida default=success (success|info|danger)
	 *@depends library ci->session;
	 */
	public static function FlashMessage($str, $type = 'success') {
		$ci = &get_instance();
		$ci -> load -> library('session');
		$ci -> session -> set_flashdata('message_flashdata', '<div class="message-template alert alert-' . $type . '"> ' . $str . '</div>');
	}

	/**
	 *FlashMessage <br>
	 *Dever ser usada no template do sistema
	 *@return  string retorna mensagem temporárias adicionadas pelo flashMessage.
	 *@depends library ci->session;
	 */

	public static function getMessageTemp() {

		$ci = &get_instance();
		$ci -> load -> library('session');
		return $ci -> session -> flashdata('message_flashdata');
	}

	/**
	 *message <br>
	 *Recupera messagens para o sistema no do arquivo messages.json
	 *@param string $str codigo para ser resgatado
	 */

	public static function message($str) {
		$ci = &get_instance();

		$json = json_decode(file_get_contents(APPPATH . '/language/messages/' . $ci -> config -> item('language') . '.json'));
        
		return $json -> $str;
	}

	public static function generateKeyActivation($length = 64) {
		$key = '';
		list($usec, $sec) = explode(' ', microtime());
		mt_srand((float)$sec + ((float)$usec * 100000));

		$inputs = array_merge(range('z', 'a'), range(0, 9), range('A', 'Z'));

		for ($i = 0; $i < $length; $i++) {
			$key .= $inputs{mt_rand(0, 61)};
		}
		return $key;
	}

	/*Generate Key for leilao*/
	static function createKeyHabilitacao($idUser, $idLeilao) {
		return hash('sha512', $idUser . $idLeilao);
	}

	public static function checkValidUserName($login) {
		$arrayRemover = array('.', '-', ' ');
		$arrayNormal = array("", "", "");
		$normal = str_replace($arrayRemover, $arrayNormal, $login);

		// Remove os acentos da string
		$de = 'àáãâéêíóõôúüçÊÉÈÁÃÂÀÔÕÓÒÌÍÚÙ';
		$para = 'aaaaeeiooouuceeeaaaaooooiiuu';
		$string_final = strtr(strtolower($normal), $de, $para);
		// Array em Filtro de Palavrões
		$array = array('arrombado', 'arrombada', 'buceta', 'boceta', 'bocetao', 'bucetinha', 'bucetao', 'bucetaum', 'blowjob', '#@?$%~', 'caralinho', 'caralhao', 'caralhaum', 'caralhex', 'c*', 'cacete', 'cacetinho', 'cacetao', 'cacetaum', 'epenis', 'foder', 'f****', 'fodase', 'fodasi', 'fodassi', 'fodassa', 'fodinha', 'fodao', 'fodaum', 'foda1', 'fodona', 'f***', 'fodeu', 'fodasse', 'fuckoff', 'fuckyou', 'fuck', 'filhodaputa', 'filhadaputa', 'gozo', 'gozar', 'gozada', 'gozadanacara', 'm*****', 'merdao', 'merdaum', 'merdinha', 'vadia', 'vasefoder', 'venhasefoder', 'voufoder', 'vasefuder', 'venhasefuder', 'voufuder', 'vaisefoder', 'vaisefuder', 'venhasefuder', 'vaisifude', 'v****', 'vaisifuder', 'vasifuder', 'vasefuder', 'vasefoder', 'pirigueti', 'piriguete', 'p****', 'porraloca', 'porraloka', 'porranacara', '#@?$%~', 'putinha', 'putona', 'putassa', 'putao', 'punheta', 'putamerda', 'putaquepariu', 'putaquemepariu', 'putaquetepariu', 'putavadia', 'pqp', 'putaqpariu', 'putaqpario', 'putaqparil', 'peido', 'peidar', 'xoxota', 'xota', 'xoxotinha', 'xoxotona');

		if (!in_array($string_final, $array)) {
			return true;
		}
			return false;
		

	}

}
